package maple.thelittleredbook.user.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;

import java.time.LocalDateTime;

/**
 * 用户实体类
 */
@Data
@TableName("users")
public class User {
    /**
     * 用户ID，主键，自增
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * 用户名，唯一，非空
     */
    private String username;

    /**
     * 加密后的密码，非空
     */
    private String password;

    /**
     * 头像URL，可空
     */
    private String avatar;

    /**
     * 邮箱，唯一，可空
     */
    private String email;

    /**
     * 个人简介，可空
     */
    private String bio;

    /**
     * 角色：USER, ADMIN, SUPERADMIN，非空，默认USER
     */
    private String role;

    /**
     * 是否启用，非空，默认TRUE
     */
    private Boolean isActive;

    /**
     * 创建时间，非空，默认当前时间
     */
    private LocalDateTime createdAt;

    /**
     * 更新时间，非空，默认当前时间且更新时自动更新
     */
    private LocalDateTime updatedAt;
}